package com.wzk.multi_platform_svos.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;

/**
 * @Author: WangZiKang
 * @Date: 2025/1/5 13:56
 */
@Component
public class PasswordUtil {

    @Value("${password.key}")
    private String key;

    //密码明文加密
    public String encrypt(String pwd){
        // 使用 Hutool 的 SecureUtil.aes() 进行 AES 加密
        AES aes = SecureUtil.aes(key.getBytes(StandardCharsets.UTF_8));
        // 加密，返回加密后的字节数组
        byte[] encryptedData = aes.encrypt(pwd);
        //转换成string返回
        String ciphertext = Base64.encode(encryptedData);
        return ciphertext;
    }

    //密码解密
    public String decrypt(String ciphertext){
        // 使用 Hutool 的 SecureUtil.aes() 进行 AES 解密
        AES aes = SecureUtil.aes(key.getBytes(StandardCharsets.UTF_8));
        // 将 Base64 编码的密文解码为字节数组
        byte[] encryptedData = Base64.decode(ciphertext);
        // 解密返回解密后的明文
        String plaintext = aes.decryptStr(encryptedData, StandardCharsets.UTF_8);
        return plaintext;
    }

}
